package pe.com.bbva.ge.vista.vaadin.ui.solicitud;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import pe.com.bbva.ge.domain.solicitud.Destino;
import pe.com.bbva.ge.domain.solicitud.DetalleMoneda;
import pe.com.bbva.ge.domain.solicitud.Solicitud;
import pe.com.bbva.ge.domain.solicitud.TipoSolicitud;
import pe.com.bbva.ge.negocio.SolicitudNegocio;
import pe.com.bbva.ge.vista.vaadin.ui.BaseUI;
import pe.com.bbva.ge.vista.vaadin.ui.component.ComboBoxGE;
import pe.com.bbva.ge.vista.vaadin.ui.utileria.ComboValueChangeListener;

import com.cdainfo.vaadin.TablaFiltro;
import com.cdainfo.vaadin.container.CDAIndexedContainer;
import com.vaadin.annotations.AutoGenerated;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;

public class SolicitudesUI extends BaseUI implements ClickListener, ComboValueChangeListener,ValueChangeListener{

	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */

	@AutoGenerated
	private VerticalLayout mainLayout;
	@AutoGenerated
	private VerticalLayout lytPrincipal;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_1;
	@AutoGenerated
	private Button btnGrabar;
	@AutoGenerated
	private TabSheet tabCabecera;
	@AutoGenerated
	private VerticalLayout sheetBitacora;
	@AutoGenerated
	private TablaFiltro tblBitacora;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_7;
	@AutoGenerated
	private TextField txtRegla;
	@AutoGenerated
	private TextField txtUsuario;
	@AutoGenerated
	private TextField txtTerminal;
	@AutoGenerated
	private TextField txtMomento;
	@AutoGenerated
	private TextField txtResultado;
	@AutoGenerated
	private TextField txtEvento;
	@AutoGenerated
	private TextField txtTipoEvento;
	@AutoGenerated
	private VerticalLayout sheetRemito;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_8;
	@AutoGenerated
	private VerticalLayout verticalLayout_4;
	@AutoGenerated
	private Table tblRemito;
	@AutoGenerated
	private VerticalLayout verticalLayout_3;
	@AutoGenerated
	private Panel panel_6;
	@AutoGenerated
	private VerticalLayout verticalLayout_8;
	@AutoGenerated
	private TextArea textArea_2;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_20;
	@AutoGenerated
	private TextField textField_52;
	@AutoGenerated
	private TextField textField_51;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_17;
	@AutoGenerated
	private ComboBox comboBox_3;
	@AutoGenerated
	private TextField txtNroAnomalia;
	@AutoGenerated
	private Panel panel_5;
	@AutoGenerated
	private VerticalLayout verticalLayout_7;
	@AutoGenerated
	private TextArea textArea_1;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_18;
	@AutoGenerated
	private TextField textField_50;
	@AutoGenerated
	private TextField textField_13;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_16;
	@AutoGenerated
	private ComboBox comboBox_2;
	@AutoGenerated
	private ComboBox comboBox_1;
	@AutoGenerated
	private VerticalLayout verticalLayout_2;
	@AutoGenerated
	private TextArea txtListaRemito;
	@AutoGenerated
	private HorizontalLayout horizontalLayout_9;
	@AutoGenerated
	private Button btnAdicionar;
	@AutoGenerated
	private ComboBox cmbTipoRemito;
	@AutoGenerated
	private TextField txtNumRemito;
	@AutoGenerated
	private VerticalLayout sheetAtm;
	@AutoGenerated
	private VerticalLayout lytAtm;
	@AutoGenerated
	private VerticalLayout sheetDetalle;
	@AutoGenerated
	private VerticalLayout lytDetalle;
	@AutoGenerated
	private HorizontalLayout lytDestinos;
	@AutoGenerated
	private Table tblDestinos;
	@AutoGenerated
	private HorizontalLayout lytCabecera3;
	@AutoGenerated
	private Label lblReferencia;
	@AutoGenerated
	private HorizontalLayout lytCabecera2;
	@AutoGenerated
	private Label lblLugarDestino;
	@AutoGenerated
	private Label lblDestino;
	@AutoGenerated
	private Label lblOficina;
	@AutoGenerated
	private Label lblOrigen;
	@AutoGenerated
	private Label lblSolicitud;
	@AutoGenerated
	private Label lblTipoSolicitud;
	@AutoGenerated
	private HorizontalLayout lytCabecera1;
	@AutoGenerated
	private Label lblFechaValor;
	@AutoGenerated
	private Label lblFecha;
	@AutoGenerated
	private Label lblTipoEstado;
	@AutoGenerated
	private Label lblEstado;
	@AutoGenerated
	private Label lblNumero;
	@AutoGenerated
	private Label lblNumeroSolicitud;
	private static final long serialVersionUID = 1L;
	@Autowired
	private SolicitudNegocio solicitudNegocio;
	
	private Map<Destino, SolicitudDetalleUI> mpSolDetalle;
	private Solicitud solicitud;
	
	public SolicitudesUI() {
		buildMainLayout();
		setCompositionRoot(mainLayout);
	}

	@Override
	public void postConstruccion() {
		mpSolDetalle=new HashMap<Destino, SolicitudDetalleUI>();
		cargarFormulario();
	}

	@Override
	public void comboValueChange(ComboBoxGE combo, ValueChangeEvent event) {
		
	}

	@Override
	public void buttonClick(ClickEvent event) {
		
	}

	public void setSolicitud(Solicitud solicitud) {
		this.solicitud = solicitud;
	}
	
	@Transactional
	public void cargarFormulario(){				
		tblRemito.addContainerProperty("Concepto", String.class, null);
		tblRemito.addContainerProperty("Denominacion", String.class, null);
		tblRemito.addContainerProperty("Monto", String.class, null);
		tblRemito.addContainerProperty("Tipo de anomalia", CheckBox.class, null);		
		tblRemito.setColumnWidth("Concepto",50);
		tblRemito.setColumnWidth("Denominacion", 70);
		tblRemito.setColumnWidth("Monto",40 );
		tblRemito.setColumnWidth("Tipo de anomalia", 80);
		
		CDAIndexedContainer container = new CDAIndexedContainer();
		container.addContainerProperty("tipoEvento", String.class, null, "Tipo evento", CDAIndexedContainer.TipoComponente.TEXT, true, 90);
		container.addContainerProperty("evento", String.class, null, "Evento", CDAIndexedContainer.TipoComponente.TEXT, true, 90);
		container.addContainerProperty("resultado", String.class, null, "Resultado", CDAIndexedContainer.TipoComponente.TEXT, true, 250);
		container.addContainerProperty("momento", String.class, null, "Momento", CDAIndexedContainer.TipoComponente.TEXT, true, 100);
		container.addContainerProperty("terminal", String.class, null, "Terminal", CDAIndexedContainer.TipoComponente.TEXT, true, 100);
		container.addContainerProperty("usuario", String.class, null, "Usuario", CDAIndexedContainer.TipoComponente.TEXT, true, 100);
		container.addContainerProperty("regla", String.class, null, "Regla", CDAIndexedContainer.TipoComponente.TEXT, true, 90);
		tblBitacora.setContainerDataSource(container);
		
		lblNumero.setValue(solicitud.getNumero());
		lblTipoEstado.setValue(solicitud.getEstado().getNombre());
		lblFechaValor.setValue(solicitud.getCreacion());
		lblSolicitud.setValue(solicitud.getTipo().getNombre());
		lblOficina.setValue(solicitud.getOrigen().getNombre());
		if(TipoSolicitud.CODIGO.SERVICIO_POR_RUTA.equals(solicitud.getTipo().getCodigo())){
			lblDestino.setValue("");
			lblLugarDestino.setValue("");
			tblDestinos.setVisible(true);
			cargarDestinos();
		}else{
			lblLugarDestino.setValue(solicitud.getDestinos().get(0).getDestino().getNombre());
			tblDestinos.setVisible(false);
			SolicitudDetalleUI solicitudDetalleUI=new SolicitudDetalleUI(solicitud);
			solicitudDetalleUI.setDestino(solicitud.getDestinos().get(0));
			lytDetalle.addComponent(solicitudDetalleUI);
			cargarAtms(solicitud.getDestinos().get(0));
		}
	}

	public void cargarDestinos(){
		tblDestinos.removeAllItems();
		tblDestinos.addContainerProperty("Destinos", String.class, null);
		tblDestinos.addContainerProperty("PEN", String.class, null);
		tblDestinos.addContainerProperty("USD", String.class, null);
		for(Destino destinos:solicitud.getDestinos()){
			List<DetalleMoneda> lstDetalleMoneda=solicitudNegocio.obtenerDetalleMonedas(destinos);
			tblDestinos.addItem(new Object[]{destinos.getDestino().getNombre(),lstDetalleMoneda.get(0).getTotal(),lstDetalleMoneda.get(1).getTotal()}, destinos);
		}
		tblDestinos.setSelectable(true);
		tblDestinos.setImmediate(true);
		tblDestinos.addListener(this);
	}
	
	public void cargarAtms(Destino destino){		
		lytAtm.addComponent(new SolicitudATMUI(destino));
	}
	
	@Override
	public void valueChange(ValueChangeEvent event) {
		if(event.getProperty().equals(tblDestinos)){
			Destino destino=(Destino)tblDestinos.getValue();			
			SolicitudDetalleUI solicitudDetalleUI;
			if(mpSolDetalle.containsKey(destino)){
				solicitudDetalleUI = mpSolDetalle.get(destino);
			}else{
				solicitudDetalleUI=new SolicitudDetalleUI(solicitud);
				solicitudDetalleUI.setDestino(destino);
				mpSolDetalle.put(destino, solicitudDetalleUI);
			}
			lytDetalle.removeAllComponents();
			lytDetalle.addComponent(solicitudDetalleUI);
			cargarAtms(destino);
		}
	}

	@AutoGenerated
	private VerticalLayout buildMainLayout() {
		// common part: create layout
		mainLayout = new VerticalLayout();
		mainLayout.setImmediate(false);
		mainLayout.setWidth("1000px");
		mainLayout.setHeight("-1px");
		mainLayout.setMargin(true);
		
		// top-level component properties
		setWidth("1000px");
		setHeight("-1px");
		
		// lytPrincipal
		lytPrincipal = buildLytPrincipal();
		mainLayout.addComponent(lytPrincipal);
		
		return mainLayout;
	}

	@AutoGenerated
	private VerticalLayout buildLytPrincipal() {
		// common part: create layout
		lytPrincipal = new VerticalLayout();
		lytPrincipal.setImmediate(false);
		lytPrincipal.setWidth("950px");
		lytPrincipal.setHeight("-1px");
		lytPrincipal.setMargin(false);
		lytPrincipal.setSpacing(true);
		
		// lytCabecera1
		lytCabecera1 = buildLytCabecera1();
		lytPrincipal.addComponent(lytCabecera1);
		
		// lytCabecera2
		lytCabecera2 = buildLytCabecera2();
		lytPrincipal.addComponent(lytCabecera2);
		
		// lytCabecera3
		lytCabecera3 = buildLytCabecera3();
		lytPrincipal.addComponent(lytCabecera3);
		
		// lytDestinos
		lytDestinos = buildLytDestinos();
		lytPrincipal.addComponent(lytDestinos);
		
		// tabCabecera
		tabCabecera = buildTabCabecera();
		lytPrincipal.addComponent(tabCabecera);
		
		// horizontalLayout_1
		horizontalLayout_1 = buildHorizontalLayout_1();
		lytPrincipal.addComponent(horizontalLayout_1);
		lytPrincipal
				.setComponentAlignment(horizontalLayout_1, new Alignment(6));
		
		return lytPrincipal;
	}

	@AutoGenerated
	private HorizontalLayout buildLytCabecera1() {
		// common part: create layout
		lytCabecera1 = new HorizontalLayout();
		lytCabecera1.setImmediate(false);
		lytCabecera1.setWidth("600px");
		lytCabecera1.setHeight("-1px");
		lytCabecera1.setMargin(false);
		lytCabecera1.setSpacing(true);
		
		// lblNumeroSolicitud
		lblNumeroSolicitud = new Label();
		lblNumeroSolicitud.setImmediate(false);
		lblNumeroSolicitud.setWidth("-1px");
		lblNumeroSolicitud.setHeight("-1px");
		lblNumeroSolicitud.setValue("Numero de solicitud: ");
		lytCabecera1.addComponent(lblNumeroSolicitud);
		
		// lblNumero
		lblNumero = new Label();
		lblNumero.setImmediate(false);
		lblNumero.setWidth("-1px");
		lblNumero.setHeight("-1px");
		lblNumero.setValue("Label");
		lytCabecera1.addComponent(lblNumero);
		
		// lblEstado
		lblEstado = new Label();
		lblEstado.setImmediate(false);
		lblEstado.setWidth("-1px");
		lblEstado.setHeight("-1px");
		lblEstado.setValue("Estado:");
		lytCabecera1.addComponent(lblEstado);
		
		// lblTipoEstado
		lblTipoEstado = new Label();
		lblTipoEstado.setImmediate(false);
		lblTipoEstado.setWidth("-1px");
		lblTipoEstado.setHeight("-1px");
		lblTipoEstado.setValue("Label");
		lytCabecera1.addComponent(lblTipoEstado);
		
		// lblFecha
		lblFecha = new Label();
		lblFecha.setImmediate(false);
		lblFecha.setWidth("-1px");
		lblFecha.setHeight("-1px");
		lblFecha.setValue("Fecha atencion:");
		lytCabecera1.addComponent(lblFecha);
		
		// lblFechaValor
		lblFechaValor = new Label();
		lblFechaValor.setImmediate(false);
		lblFechaValor.setWidth("-1px");
		lblFechaValor.setHeight("-1px");
		lblFechaValor.setValue("Label");
		lytCabecera1.addComponent(lblFechaValor);
		
		return lytCabecera1;
	}

	@AutoGenerated
	private HorizontalLayout buildLytCabecera2() {
		// common part: create layout
		lytCabecera2 = new HorizontalLayout();
		lytCabecera2.setImmediate(false);
		lytCabecera2.setWidth("500px");
		lytCabecera2.setHeight("-1px");
		lytCabecera2.setMargin(false);
		lytCabecera2.setSpacing(true);
		
		// lblTipoSolicitud
		lblTipoSolicitud = new Label();
		lblTipoSolicitud.setImmediate(false);
		lblTipoSolicitud.setWidth("-1px");
		lblTipoSolicitud.setHeight("-1px");
		lblTipoSolicitud.setValue("Tipo solicitud:");
		lytCabecera2.addComponent(lblTipoSolicitud);
		
		// lblSolicitud
		lblSolicitud = new Label();
		lblSolicitud.setImmediate(false);
		lblSolicitud.setWidth("-1px");
		lblSolicitud.setHeight("-1px");
		lblSolicitud.setValue("Label");
		lytCabecera2.addComponent(lblSolicitud);
		
		// lblOrigen
		lblOrigen = new Label();
		lblOrigen.setImmediate(false);
		lblOrigen.setWidth("-1px");
		lblOrigen.setHeight("-1px");
		lblOrigen.setValue("Origen:");
		lytCabecera2.addComponent(lblOrigen);
		
		// lblOficina
		lblOficina = new Label();
		lblOficina.setImmediate(false);
		lblOficina.setWidth("-1px");
		lblOficina.setHeight("-1px");
		lblOficina.setValue("Label");
		lytCabecera2.addComponent(lblOficina);
		
		// lblDestino
		lblDestino = new Label();
		lblDestino.setImmediate(false);
		lblDestino.setWidth("-1px");
		lblDestino.setHeight("-1px");
		lblDestino.setValue("Destino:");
		lytCabecera2.addComponent(lblDestino);
		
		// lblLugarDestino
		lblLugarDestino = new Label();
		lblLugarDestino.setImmediate(false);
		lblLugarDestino.setWidth("-1px");
		lblLugarDestino.setHeight("-1px");
		lblLugarDestino.setValue("Label");
		lytCabecera2.addComponent(lblLugarDestino);
		
		return lytCabecera2;
	}

	@AutoGenerated
	private HorizontalLayout buildLytCabecera3() {
		// common part: create layout
		lytCabecera3 = new HorizontalLayout();
		lytCabecera3.setImmediate(false);
		lytCabecera3.setWidth("800px");
		lytCabecera3.setHeight("-1px");
		lytCabecera3.setMargin(false);
		lytCabecera3.setSpacing(true);
		
		// lblReferencia
		lblReferencia = new Label();
		lblReferencia.setImmediate(false);
		lblReferencia.setWidth("-1px");
		lblReferencia.setHeight("-1px");
		lblReferencia.setValue("Referencia:");
		lytCabecera3.addComponent(lblReferencia);
		
		return lytCabecera3;
	}

	@AutoGenerated
	private HorizontalLayout buildLytDestinos() {
		// common part: create layout
		lytDestinos = new HorizontalLayout();
		lytDestinos.setImmediate(false);
		lytDestinos.setWidth("-1px");
		lytDestinos.setHeight("-1px");
		lytDestinos.setMargin(false);
		
		// tblDestinos
		tblDestinos = new Table();
		tblDestinos.setImmediate(false);
		tblDestinos.setWidth("300px");
		tblDestinos.setHeight("80px");
		lytDestinos.addComponent(tblDestinos);
		
		return lytDestinos;
	}

	@AutoGenerated
	private TabSheet buildTabCabecera() {
		// common part: create layout
		tabCabecera = new TabSheet();
		tabCabecera.setImmediate(true);
		tabCabecera.setWidth("950px");
		tabCabecera.setHeight("450px");
		
		// sheetDetalle
		sheetDetalle = buildSheetDetalle();
		tabCabecera.addTab(sheetDetalle, "DETALLE", null);
		
		// sheetAtm
		sheetAtm = buildSheetAtm();
		tabCabecera.addTab(sheetAtm, "ATM", null);
		
		// sheetRemito
		sheetRemito = buildSheetRemito();
		tabCabecera.addTab(sheetRemito, "REMITO", null);
		
		// sheetBitacora
		sheetBitacora = buildSheetBitacora();
		tabCabecera.addTab(sheetBitacora, "BITACORA", null);
		
		return tabCabecera;
	}

	@AutoGenerated
	private VerticalLayout buildSheetDetalle() {
		// common part: create layout
		sheetDetalle = new VerticalLayout();
		sheetDetalle.setImmediate(false);
		sheetDetalle.setWidth("-1px");
		sheetDetalle.setHeight("-1px");
		sheetDetalle.setMargin(false);
		
		// lytDetalle
		lytDetalle = new VerticalLayout();
		lytDetalle.setImmediate(false);
		lytDetalle.setWidth("100.0%");
		lytDetalle.setHeight("100.0%");
		lytDetalle.setMargin(false);
		sheetDetalle.addComponent(lytDetalle);
		
		return sheetDetalle;
	}

	@AutoGenerated
	private VerticalLayout buildSheetAtm() {
		// common part: create layout
		sheetAtm = new VerticalLayout();
		sheetAtm.setImmediate(false);
		sheetAtm.setWidth("-1px");
		sheetAtm.setHeight("-1px");
		sheetAtm.setMargin(false);
		
		// lytAtm
		lytAtm = new VerticalLayout();
		lytAtm.setImmediate(false);
		lytAtm.setWidth("100.0%");
		lytAtm.setHeight("100.0%");
		lytAtm.setMargin(false);
		sheetAtm.addComponent(lytAtm);
		
		return sheetAtm;
	}

	@AutoGenerated
	private VerticalLayout buildSheetRemito() {
		// common part: create layout
		sheetRemito = new VerticalLayout();
		sheetRemito.setImmediate(false);
		sheetRemito.setWidth("-1px");
		sheetRemito.setHeight("-1px");
		sheetRemito.setMargin(true);
		sheetRemito.setSpacing(true);
		
		// horizontalLayout_8
		horizontalLayout_8 = buildHorizontalLayout_8();
		sheetRemito.addComponent(horizontalLayout_8);
		
		return sheetRemito;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_8() {
		// common part: create layout
		horizontalLayout_8 = new HorizontalLayout();
		horizontalLayout_8.setImmediate(false);
		horizontalLayout_8.setWidth("-1px");
		horizontalLayout_8.setHeight("-1px");
		horizontalLayout_8.setMargin(false);
		horizontalLayout_8.setSpacing(true);
		
		// verticalLayout_2
		verticalLayout_2 = buildVerticalLayout_2();
		horizontalLayout_8.addComponent(verticalLayout_2);
		
		// verticalLayout_3
		verticalLayout_3 = buildVerticalLayout_3();
		horizontalLayout_8.addComponent(verticalLayout_3);
		
		// verticalLayout_4
		verticalLayout_4 = buildVerticalLayout_4();
		horizontalLayout_8.addComponent(verticalLayout_4);
		
		return horizontalLayout_8;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_2() {
		// common part: create layout
		verticalLayout_2 = new VerticalLayout();
		verticalLayout_2.setImmediate(false);
		verticalLayout_2.setWidth("250px");
		verticalLayout_2.setHeight("-1px");
		verticalLayout_2.setMargin(true);
		verticalLayout_2.setSpacing(true);
		
		// horizontalLayout_9
		horizontalLayout_9 = buildHorizontalLayout_9();
		verticalLayout_2.addComponent(horizontalLayout_9);
		
		// txtListaRemito
		txtListaRemito = new TextArea();
		txtListaRemito.setImmediate(false);
		txtListaRemito.setWidth("220px");
		txtListaRemito.setHeight("315px");
		verticalLayout_2.addComponent(txtListaRemito);
		
		return verticalLayout_2;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_9() {
		// common part: create layout
		horizontalLayout_9 = new HorizontalLayout();
		horizontalLayout_9.setImmediate(false);
		horizontalLayout_9.setWidth("-1px");
		horizontalLayout_9.setHeight("-1px");
		horizontalLayout_9.setMargin(false);
		horizontalLayout_9.setSpacing(true);
		
		// txtNumRemito
		txtNumRemito = new TextField();
		txtNumRemito.setImmediate(false);
		txtNumRemito.setWidth("70px");
		txtNumRemito.setHeight("-1px");
		horizontalLayout_9.addComponent(txtNumRemito);
		
		// cmbTipoRemito
		cmbTipoRemito = new ComboBox();
		cmbTipoRemito.setImmediate(false);
		cmbTipoRemito.setWidth("95px");
		cmbTipoRemito.setHeight("-1px");
		horizontalLayout_9.addComponent(cmbTipoRemito);
		
		// btnAdicionar
		btnAdicionar = new Button();
		btnAdicionar.setCaption("+");
		btnAdicionar.setImmediate(true);
		btnAdicionar.setWidth("-1px");
		btnAdicionar.setHeight("-1px");
		horizontalLayout_9.addComponent(btnAdicionar);
		
		return horizontalLayout_9;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_3() {
		// common part: create layout
		verticalLayout_3 = new VerticalLayout();
		verticalLayout_3.setImmediate(false);
		verticalLayout_3.setWidth("-1px");
		verticalLayout_3.setHeight("-1px");
		verticalLayout_3.setMargin(false);
		verticalLayout_3.setSpacing(true);
		
		// panel_5
		panel_5 = buildPanel_5();
		verticalLayout_3.addComponent(panel_5);
		
		// panel_6
		panel_6 = buildPanel_6();
		verticalLayout_3.addComponent(panel_6);
		
		return verticalLayout_3;
	}

	@AutoGenerated
	private Panel buildPanel_5() {
		// common part: create layout
		panel_5 = new Panel();
		panel_5.setImmediate(false);
		panel_5.setWidth("330px");
		panel_5.setHeight("-1px");
		
		// verticalLayout_7
		verticalLayout_7 = buildVerticalLayout_7();
		panel_5.setContent(verticalLayout_7);
		
		return panel_5;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_7() {
		// common part: create layout
		verticalLayout_7 = new VerticalLayout();
		verticalLayout_7.setImmediate(false);
		verticalLayout_7.setWidth("100.0%");
		verticalLayout_7.setHeight("100.0%");
		verticalLayout_7.setMargin(true);
		verticalLayout_7.setSpacing(true);
		
		// horizontalLayout_16
		horizontalLayout_16 = buildHorizontalLayout_16();
		verticalLayout_7.addComponent(horizontalLayout_16);
		
		// horizontalLayout_18
		horizontalLayout_18 = buildHorizontalLayout_18();
		verticalLayout_7.addComponent(horizontalLayout_18);
		
		// textArea_1
		textArea_1 = new TextArea();
		textArea_1.setImmediate(false);
		textArea_1.setWidth("295px");
		textArea_1.setHeight("-1px");
		verticalLayout_7.addComponent(textArea_1);
		
		return verticalLayout_7;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_16() {
		// common part: create layout
		horizontalLayout_16 = new HorizontalLayout();
		horizontalLayout_16.setImmediate(false);
		horizontalLayout_16.setWidth("-1px");
		horizontalLayout_16.setHeight("-1px");
		horizontalLayout_16.setMargin(false);
		horizontalLayout_16.setSpacing(true);
		
		// comboBox_1
		comboBox_1 = new ComboBox();
		comboBox_1.setImmediate(false);
		comboBox_1.setWidth("143px");
		comboBox_1.setHeight("-1px");
		horizontalLayout_16.addComponent(comboBox_1);
		
		// comboBox_2
		comboBox_2 = new ComboBox();
		comboBox_2.setImmediate(false);
		comboBox_2.setWidth("143px");
		comboBox_2.setHeight("-1px");
		horizontalLayout_16.addComponent(comboBox_2);
		
		return horizontalLayout_16;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_18() {
		// common part: create layout
		horizontalLayout_18 = new HorizontalLayout();
		horizontalLayout_18.setImmediate(false);
		horizontalLayout_18.setWidth("-1px");
		horizontalLayout_18.setHeight("-1px");
		horizontalLayout_18.setMargin(false);
		horizontalLayout_18.setSpacing(true);
		
		// textField_13
		textField_13 = new TextField();
		textField_13.setImmediate(false);
		textField_13.setWidth("-1px");
		textField_13.setHeight("-1px");
		horizontalLayout_18.addComponent(textField_13);
		
		// textField_50
		textField_50 = new TextField();
		textField_50.setImmediate(false);
		textField_50.setWidth("-1px");
		textField_50.setHeight("-1px");
		horizontalLayout_18.addComponent(textField_50);
		
		return horizontalLayout_18;
	}

	@AutoGenerated
	private Panel buildPanel_6() {
		// common part: create layout
		panel_6 = new Panel();
		panel_6.setImmediate(false);
		panel_6.setWidth("330px");
		panel_6.setHeight("-1px");
		
		// verticalLayout_8
		verticalLayout_8 = buildVerticalLayout_8();
		panel_6.setContent(verticalLayout_8);
		
		return panel_6;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_8() {
		// common part: create layout
		verticalLayout_8 = new VerticalLayout();
		verticalLayout_8.setImmediate(false);
		verticalLayout_8.setWidth("100.0%");
		verticalLayout_8.setHeight("100.0%");
		verticalLayout_8.setMargin(true);
		verticalLayout_8.setSpacing(true);
		
		// horizontalLayout_17
		horizontalLayout_17 = buildHorizontalLayout_17();
		verticalLayout_8.addComponent(horizontalLayout_17);
		
		// horizontalLayout_20
		horizontalLayout_20 = buildHorizontalLayout_20();
		verticalLayout_8.addComponent(horizontalLayout_20);
		
		// textArea_2
		textArea_2 = new TextArea();
		textArea_2.setImmediate(false);
		textArea_2.setWidth("295px");
		textArea_2.setHeight("-1px");
		verticalLayout_8.addComponent(textArea_2);
		
		return verticalLayout_8;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_17() {
		// common part: create layout
		horizontalLayout_17 = new HorizontalLayout();
		horizontalLayout_17.setImmediate(false);
		horizontalLayout_17.setWidth("-1px");
		horizontalLayout_17.setHeight("-1px");
		horizontalLayout_17.setMargin(false);
		horizontalLayout_17.setSpacing(true);
		
		// txtNroAnomalia
		txtNroAnomalia = new TextField();
		txtNroAnomalia.setImmediate(false);
		txtNroAnomalia.setWidth("-1px");
		txtNroAnomalia.setHeight("-1px");
		horizontalLayout_17.addComponent(txtNroAnomalia);
		
		// comboBox_3
		comboBox_3 = new ComboBox();
		comboBox_3.setImmediate(false);
		comboBox_3.setWidth("143px");
		comboBox_3.setHeight("-1px");
		horizontalLayout_17.addComponent(comboBox_3);
		
		return horizontalLayout_17;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_20() {
		// common part: create layout
		horizontalLayout_20 = new HorizontalLayout();
		horizontalLayout_20.setImmediate(false);
		horizontalLayout_20.setWidth("-1px");
		horizontalLayout_20.setHeight("-1px");
		horizontalLayout_20.setMargin(false);
		horizontalLayout_20.setSpacing(true);
		
		// textField_51
		textField_51 = new TextField();
		textField_51.setImmediate(false);
		textField_51.setWidth("-1px");
		textField_51.setHeight("-1px");
		horizontalLayout_20.addComponent(textField_51);
		
		// textField_52
		textField_52 = new TextField();
		textField_52.setImmediate(false);
		textField_52.setWidth("-1px");
		textField_52.setHeight("-1px");
		horizontalLayout_20.addComponent(textField_52);
		
		return horizontalLayout_20;
	}

	@AutoGenerated
	private VerticalLayout buildVerticalLayout_4() {
		// common part: create layout
		verticalLayout_4 = new VerticalLayout();
		verticalLayout_4.setImmediate(false);
		verticalLayout_4.setWidth("-1px");
		verticalLayout_4.setHeight("-1px");
		verticalLayout_4.setMargin(true);
		verticalLayout_4.setSpacing(true);
		
		// tblRemito
		tblRemito = new Table();
		tblRemito.setImmediate(false);
		tblRemito.setWidth("300px");
		tblRemito.setHeight("340px");
		verticalLayout_4.addComponent(tblRemito);
		
		return verticalLayout_4;
	}

	@AutoGenerated
	private VerticalLayout buildSheetBitacora() {
		// common part: create layout
		sheetBitacora = new VerticalLayout();
		sheetBitacora.setImmediate(false);
		sheetBitacora.setWidth("-1px");
		sheetBitacora.setHeight("-1px");
		sheetBitacora.setMargin(true);
		sheetBitacora.setSpacing(true);
		
		// horizontalLayout_7
		horizontalLayout_7 = buildHorizontalLayout_7();
		sheetBitacora.addComponent(horizontalLayout_7);
		
		// tblBitacora
		tblBitacora = new TablaFiltro();
		tblBitacora.setImmediate(false);
		tblBitacora.setWidth("-1px");
		tblBitacora.setHeight("-1px");
		sheetBitacora.addComponent(tblBitacora);
		
		return sheetBitacora;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_7() {
		// common part: create layout
		horizontalLayout_7 = new HorizontalLayout();
		horizontalLayout_7.setImmediate(false);
		horizontalLayout_7.setWidth("-1px");
		horizontalLayout_7.setHeight("-1px");
		horizontalLayout_7.setMargin(false);
		horizontalLayout_7.setSpacing(true);
		
		// txtTipoEvento
		txtTipoEvento = new TextField();
		txtTipoEvento.setImmediate(false);
		txtTipoEvento.setWidth("100px");
		txtTipoEvento.setHeight("-1px");
		horizontalLayout_7.addComponent(txtTipoEvento);
		
		// txtEvento
		txtEvento = new TextField();
		txtEvento.setImmediate(false);
		txtEvento.setWidth("100px");
		txtEvento.setHeight("-1px");
		horizontalLayout_7.addComponent(txtEvento);
		
		// txtResultado
		txtResultado = new TextField();
		txtResultado.setImmediate(false);
		txtResultado.setWidth("270px");
		txtResultado.setHeight("-1px");
		horizontalLayout_7.addComponent(txtResultado);
		
		// txtMomento
		txtMomento = new TextField();
		txtMomento.setImmediate(false);
		txtMomento.setWidth("100px");
		txtMomento.setHeight("-1px");
		horizontalLayout_7.addComponent(txtMomento);
		
		// txtTerminal
		txtTerminal = new TextField();
		txtTerminal.setImmediate(false);
		txtTerminal.setWidth("100px");
		txtTerminal.setHeight("-1px");
		horizontalLayout_7.addComponent(txtTerminal);
		
		// txtUsuario
		txtUsuario = new TextField();
		txtUsuario.setImmediate(false);
		txtUsuario.setWidth("100px");
		txtUsuario.setHeight("-1px");
		horizontalLayout_7.addComponent(txtUsuario);
		
		// txtRegla
		txtRegla = new TextField();
		txtRegla.setImmediate(false);
		txtRegla.setWidth("100px");
		txtRegla.setHeight("-1px");
		horizontalLayout_7.addComponent(txtRegla);
		
		return horizontalLayout_7;
	}

	@AutoGenerated
	private HorizontalLayout buildHorizontalLayout_1() {
		// common part: create layout
		horizontalLayout_1 = new HorizontalLayout();
		horizontalLayout_1.setImmediate(false);
		horizontalLayout_1.setWidth("-1px");
		horizontalLayout_1.setHeight("-1px");
		horizontalLayout_1.setMargin(false);
		
		// btnGrabar
		btnGrabar = new Button();
		btnGrabar.setCaption("Grabar");
		btnGrabar.setImmediate(true);
		btnGrabar.setWidth("100px");
		btnGrabar.setHeight("-1px");
		horizontalLayout_1.addComponent(btnGrabar);
		
		return horizontalLayout_1;
	}

}
